#ifndef _CELL_H_
#define _CELL_H_

#include "base/Role.h"

struct Neighbor;
struct Position;
struct CellState;

DEFINE_ROLE(Cell)
{
    ABSTRACT(void evolve(Neighbor&));
    ABSTRACT(void init(const Position&, CellState));
    ABSTRACT(bool isAlive() const);
    ABSTRACT(CellState getState() const);
    ABSTRACT(bool isEndl() const);
};

#endif /* _CELL_H_ */
